/**
 * 说明：数据字典前端JS
 *
 */
$(document).ready(function () {

    var me = $(this);

    /* VUE -- 绑定到查询条件区域表单，ID为queryForm */
    var queryConditions = new Vue({
        el: '#tableGrid',
        data: {
            myParams: {}
        }
    });
    //初始化splitter
    $('#splitter').jqxSplitter({
        width: '100%',
        height: '100%',
        panels: [{size: '20%', min: 50}, {size: '80%', min: 250}]
    });
    $('.jqx-splitter-splitbar-vertical').css('border', 'none');

    // 设置查询按钮点击次数
    var queryTime = 0;
    //存储主页面点击的行信息
    var curRow = {};

    /********************表格的初始化操作在此进行 ---- 实例化Grid ************************/
    var grid = $("#tableGrid").bootstrapTable({
        columns: [
            {
                checkbox: true
            }, {
                field: 'PARACODE',
                halign: 'center',
                title: '编码',
                sortable: true
            }, {
                field: 'PARANAME',
                halign: 'center',
                title: '名称',
                sortable: true
            }, {
                field: 'REMARK',
                halign: 'center',
                title: '备注',
                sortable: false
            }, {
                field: 'EXTEND1',
                halign: 'center',
                title: '扩展1',
                sortable: false
            }, {
                field: 'EXTEND2',
                halign: 'center',
                title: '扩展2',
                sortable: false
            }, {
                field: 'EXTEND3',
                halign: 'center',
                title: '扩展3',
                sortable: false
            }, {
                field: 'EXTEND4',
                halign: 'center',
                title: '扩展4',
                sortable: false
            }],

        sortable: false,//是否可以排序，每一列都可以进行指定

        url: "../../../../api/BaseDictionaryController/selectChildBypId",//加载时调用的后台连接
        undefinedText: '-',//字段值为undefine时显示的内容
        showRefresh: false,//是否显示刷新按钮
        showColumns: false,//是否显示列头
        striped: true,//是否显示表格线
        showExport: false, //是否显示导出按钮
        exportDataType: "all", //导出的数据类型
        exportTypes: ['excel'],//导出文件类型
        iconSize: "outline",//icon图标的显示方式
        toolbar: "#grdToolbar",//绑定表格的操作栏，就是新增、修改、删除按钮所在div的ID
        icons: {
            refresh: "glyphicon-repeat",
            toggle: "glyphicon-list-alt",
            columns: "glyphicon-list"
        },
        pagination: true,//是否分页
        sidePagination: "server", // 表示分页时进行服务端请求
        method: 'post',//请求方法[post/get]
        dataField: 'data',
        pageNumber: 1,//页面分页的初始页码
        pageSize: 10,//每页显示数量(暂定每页10条，请暂勿修改，保持统一)
        pageList: [5, 10, 25, 50, 100],//每页显示的可选数量
        queryParamsType: "undefined",


        //查询参数配置
        queryParams: function (params) {
            var pIndex, myTotal;
            if (queryTime === 0) {
                pIndex = 1;
                myTotal = -1;
                queryTime++;
            }
            else {
                pIndex = params.pageNumber;
                myTotal = this.totalRows;
            }

            return {
                limit: params.pageSize,
                page: pIndex,
                allcount: myTotal,
                data: queryConditions.myParams,
                sortName: params.sortName,
                sortOrder: params.sortOrder
            }
        },

        //排序事件
        onSort: function (name, order) {
            grid.queryData();
        },
        onClickRow: function (row, $element) {
            curRow = row;
        },

        //数据加载完毕事件
        onLoadSuccess: function (result) {
            // 数据加载完成后处理某些信息

            //点击连接的时候弹出可编辑输入框，便于修改
            //基于控件：bootstrap-editable.js
            //参考博客地址:http://www.cnblogs.com/landeanfen/p/5821192.html
            $("#tableGrid a").click(function () {

            });
        }
    });

    grid.queryData = function () {
        queryTime = 0;
        this.bootstrapTable('refresh', {
            silent: false
        });
    };

    /* 树刷新 */
    $('#btnTreeLoad').click(function () {
        //grid.queryData();
        treeRefresh();

    });


    /* 主界面新增按钮 */
    $('#btnAdd').click(function () {
        if (!queryConditions.myParams.id) {
            layer.alert("请选择新增节点", {icon: 0});
            return;
        }

        //用layer创建弹出界面，界面内容指向新增页面，返回值为弹出层对象
        var pid = queryConditions.myParams.id;
        layer.open({
            type: 2,//弹出层类型
            title: '新增',//弹出层标题
            shadeClose: true,
            shade: 0.5,//透明度
            area: ['90%', '50%'],//大小
            resize: false,
            shift: 5,
            content: ['dictionaryAddView.html?_dc=' + Math.random() + "&PID=" + pid, 'yes'],
            end: function () {
                treeRefresh();
                grid.queryData();
            }
        });
    });

    /* 更新修改-- 相关配置参数同上 */
    $('#btnEdit').click(function () {
        //取出表格选中的行
        var selects = $("#tableGrid").bootstrapTable('getSelections');
        if (selects != null && selects.length > 0) {
            var ID = selects[0]['ID'];
            layer.open({
                type: 2,
                title: '修改',
                shadeClose: true,
                shade: 0.5,
                area: ['90%', '60%'],
                shift: 5,
                content: ['dictionaryAddView.html?ID=' + ID + '&_dc=' + Math.random(), 'yes'],
                end: function () {
                    grid.queryData();
                    treeRefresh();
                }
            });
        }
        else {
            layer.alert('请选中您要编辑的信息!', {icon: 0});
        }
    });

    /* 删除用户信息 */
    $('#btnDelete').click(function () {
        var selectRows = $("#tableGrid").bootstrapTable('getSelections');
        if (selectRows != null && selectRows.length > 0) {
            var mtConfirm = layer.confirm('您确定要删除么？', {
                    btn: ['是', '否'], //按钮
                    shade: false //不显示遮罩（默认使用该配置）
                }, function () {
                    var entities = [];
                    for (var i in selectRows) {
                        var sel = selectRows[i];
                        entities.push({
                            ID: sel.ID,
                            PARACODE: sel.PARACODE
                        });
                    }
                    var loadIndex = loading();
                    loadIndex.show();
                    app.callAjaxPost('../../../../api/BaseDictionaryController/delete', entities, function (result) {
                        loadIndex.close();
                        if (result.success === true) {
                            grid.queryData();
                            treeRefresh();
                            layer.alert(result.message, {icon: 1});
                        } else {
                            layer.alert(result.message, {icon: 2});
                        }
                    }, grid);
                },
                function () {
                    layer.close(mtConfirm);
                }
            );
        }
        else {
            layer.alert('请选中您要删除的信息!', {icon: 0});
        }
    });

    /* 主界面排序按钮 */
    $('#btnSorting').click(function () {
        if (!queryConditions.myParams.id) {
            layer.alert("请选择父节点", {icon: 0});
            return;
        }

        //用layer创建弹出界面，界面内容指向新增页面，返回值为弹出层对象
        var pid = queryConditions.myParams.id;
        layer.open({
            type: 2,//弹出层类型
            title: '排序',//弹出层标题
            shadeClose: true,
            shade: 0.5,//透明度
            area: ['50%', '90%'],//大小
            shift: 5,
            content: ['dictionarySortingView.html?_dc=' + Math.random() + "&PID=" + pid, 'yes'],
            end: function () {
                grid.queryData();
                treeRefresh();
            }
        });
    });


    //树
    var setting = {
        view: {
            selectedMulti: false
        },
        check: {
            enable: true
        },
        data: {
            simpleData: {
                enable: true
            }
        },
        edit: {
            enable: true
        },
        callback: {
            onClick: onClick
        }
    };

    var treeRefresh = function () {
        var callResult = app.callAjaxPostSync('../../../../api/BaseDictionaryController/listTreeMenus');
        var zNodes = callResult.data;

        $(document).ready(function () {
            $.fn.zTree.init($("#treeDemo"), setting, zNodes);
        });
    };
    treeRefresh();

    function onClick(event, treeId, treeNode, clickFlag) {


        queryConditions.myParams.id = treeNode.id;

        grid.queryData();
        //var result = app.callAjaxPostSync("../../../../api/BaseDictionaryController/selectChildBypId", {ID: treeNode.id});
    }

});
